
****Replication materials for Nanes, Matthew: Circular Migration and the Moderation of Social Attitudes***
****International Studies Quarterly - Accepted June 2025***
****Analysis conducted using Stata 15 for Windows****


use "IND Migrants Survey_ISQ.dta", replace


tab male
sum age, detail
tab urban
tab lived_abroad 
tab lived_abroad_gulf 
tab hh_abroad 

foreach country in saudi uae bahrain qatar kuwait oman jordan syria singapore china korea japan usa hongkong taiwan malaysia brunei {
	tab lived_abroad_`country'
	tab hh_abroad_`country'
	}
	
**FIGURE 1: Demographic characteristics of prospective migrants relative to non-migrants
	*SI Table D.1 Demographic characteristics of Indonesians seriously considering migrating
	eststo clear
	eststo: reg consider_migrat age education_years hh_employed_ft married econ_sat male bystander i.district if lived_abroad==0, cl(location)
	esttab using "IND22_prospective_demo.tex", se star(* .10 ** .05 *** .01) r2 nodep mtitle("Consider Migrating") label keep(age education_years hh_employed_ft married econ_sat male bystander) title(Demographic characteristics of Indonesians seriously considering migrating \label{tab:considerdemo}) note(OLS with village-clustered SE in parentheses.) replace
coefplot, drop(bystander 101.district 110.district 150.district 180.district _cons) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1)


**FIGURE 2: Social and political attitudes of prospective migrants relative to non-migrants
	*SI Table D.2: Attitudinal predictors of Indonesians seriously considering migrating
	eststo clear
	foreach driver in extremism_idx religion_idx ideo_ed_gender ideo_takfir ideo_clerics ideo_husbands ideo_interest {
		eststo: reg consider_migrat `driver' age education_years hh_employed_ft married econ_sat male bystander i.district if lived_abroad==0, cl(location)
		estimates store `driver'
	}
	esttab using "IND22_prospective1.tex", se star(* .10 ** .05 *** .01) r2 nodep mtitle("" "" "" "" "" "" "") label keep(extremism_idx religion_idx ideo_ed_gender ideo_takfir ideo_clerics ideo_husbands ideo_interest) title(Attitudinal predictors of Indonesians seriously considering migrating \label{tab:considerattitudes1}) note(OLS with village-clustered SE in parentheses. Includes individual and local controls.) replace
	
	*SI Table D.3: Attitudinal predictors of Indonesians seriously considering migrating
	eststo clear
	foreach driver in ideo_corrupt ideo_democracy ideo_violence pol_parl_open pol_parl_islam pol_sharia pol_secular {
		eststo: reg consider_migrat `driver' age education_years hh_employed_ft married econ_sat male bystander i.district if lived_abroad==0, cl(location)
		estimates store `driver'
	}
	esttab using "IND22_prospective2.tex", se star(* .10 ** .05 *** .01) r2 nodep mtitle("" "" "" "" "" "" "") label keep(ideo_corrupt ideo_democracy ideo_violence pol_parl_open pol_parl_islam pol_sharia pol_secular) title(Attitudinal predictors of Indonesians seriously considering migrating \label{tab:considerattitudes2}) note(OLS with village-clustered SE in parentheses. Includes individual and local controls.) replace

coefplot extremism_idx religion_idx ideo_ed_gender ideo_takfir ideo_clerics ideo_husbands ideo_interest ideo_corrupt ideo_democracy ideo_violence pol_parl_open pol_parl_islam pol_sharia pol_secular, drop(age education_years hh_employed_ft married econ_sat male bystander 101.district 110.district 150.district 180.district _cons) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1)

	
**TABLE 1: Balance b etween prospective and returned migrants
gen balanceind=.
replace balanceind=0 if consider_migrat==1
replace balanceind=1 if lived_abroad==1
ttest urban, by(balanceind)
ttest education_years, by(balanceind)
ttest ed_govt, by(balanceind)
ttest ed_madrasa_gov, by(balanceind)
ttest married, by(balanceind)
ttest male, by(balanceind)
ttest bystander, by(balanceind)

		
**FIGURE 3: Average distribution of Egalitarian Democracy scores among respondents' destination countries
hist egaldem20 if lived_abroad==1, percent


**FIGURE 4: Comparing attitudes of returned migrants with prospective and non-migrants
gen consider_migrat_nm = 0
replace consider_migrat_nm = 1 if consider_migrat==1 & lived_abroad==0
label variable consider_migrat_nm "Prospective Migrant"
gen never_migrate = 0
replace never_migrate = 1 if lived_abroad==0 & consider_migrat == 0
label variable never_migrate "Non-Migrant"
	
	*SI Table D.4: Effects of host-country liberalism on returned migrants' attitudes
	eststo clear
	foreach outcome in extremism_idx religion_idx ideo_ed_gender ideo_husbands ideo_takfir ideo_violence ideo_clerics ideo_interest {
		eststo: reg `outcome' consider_migrat_nm never_migrate egaldem20 age education_years hh_employed_ft married econ_sat male bystander i.district, cl(location)
		estimates store `outcome'_egaldem
	}
	esttab using "IND22_3compare_egaldem.tex", se star(* .10 ** .05 *** .01) r2 nodep mtitle("Fundament." "Relig. Behav." "Edu. Men" "Husbands" "Takfir" "Violence" "Clerics" "Interest") label keep(consider_migrat_nm never_migrate egaldem20 age education_years hh_employed_ft married econ_sat male bystander) title(Effects of host-country liberalism on returned migrants' attitudes \label{tab:3compareegaldem}) note(OLS with village-clustered SE in parentheses. Includes village fixed effects.) replace

coefplot (extremism_idx_egaldem, nokey), bylabel(Fundamentalism (index)) keep(consider_migrat_nm never_migrate egaldem20) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (religion_idx_egaldem, nokey), bylabel(Relig. behav. (index)) keep(consider_migrat_nm never_migrate egaldem20) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_ed_gender_egaldem, nokey), bylabel(Education for men) keep(consider_migrat_nm never_migrate egaldem20) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_husbands_egaldem, nokey), bylabel(Husbands final say) keep(consider_migrat_nm never_migrate egaldem20) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_takfir_egaldem, nokey), bylabel(Takfir) keep(consider_migrat_nm never_migrate egaldem20) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_violence_egaldem, nokey), bylabel(Violence permitted) keep(consider_migrat_nm never_migrate egaldem20) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_clerics_egaldem, nokey), bylabel(Clerics inf. gov.) keep(consider_migrat_nm never_migrate egaldem20) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_interest_egaldem, nokey), bylabel(Interest forbidden) keep(consider_migrat_nm never_migrate egaldem20) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) byopts(row(4)) xsize(5.5) 


**Heterogeneous effects on gender (referenced in main text)
eststo clear
foreach outcome in extremism_idx religion_idx ideo_ed_gender ideo_husbands ideo_takfir ideo_violence ideo_clerics ideo_interest pol_parl_open pol_parl_islam pol_sharia pol_secular {
	eststo: reg `outcome' consider_migrat_nm never_migrate##male age education_years hh_employed_ft married econ_sat bystander i.district, cl(location)
	}

	
**TABLE 2: Percentage of returned migrants living in each category of housing while abroad
tab housing_abroad_emp if lived_abroad==1
tab housing_abroad_barrack if lived_abroad==1
tab housing_abroad_own if lived_abroad==1
tab housing_gulf_empl if lived_abroad_gulf==1
tab housing_gulf_barrack if lived_abroad_gulf==1
tab housing_gulf_own if lived_abroad_gulf==1



*****************************************************************************************
*******************************Online Supporting Information*****************************
*****************************************************************************************


**TABLE A.1: Expert ratings of country characteristics from Varieties of Democracy (2000), GCC
	*Figures come directly from Varieties of Democracy "Country-Year: V-Dem Core" accessible at: https://www.v-dem.net/data/the-v-dem-dataset/

**TABLE A.2: Expert ratings of country characteristics from Varieties of Democracy (2000), other destinations
	*Figures come directly from Varieties of Democracy "Country-Year: V-Dem Core" accessible at: https://www.v-dem.net/data/the-v-dem-dataset/

**TABLES D.1, D.2, D.3, and D.4: See above


**FIGURE D.1: Comparing attitudes of returned migrants from the ARAB GULF COUNTRIES with prospective and non-migrants
gen never_lived_gulf = 0
replace never_lived_gulf = 1 if lived_abroad_gulf==0 & consider_migrat == 0
label variable never_lived_gulf "Non-Migrant (Gulf)"

eststo clear
foreach outcome in extremism_idx religion_idx ideo_ed_gender ideo_husbands ideo_takfir ideo_violence ideo_clerics ideo_interest {
	eststo: reg `outcome' consider_migrat_nm never_lived_gulf age education_years hh_employed_ft married econ_sat male bystander i.district, cl(location)
	estimates store `outcome'_3compare
	}
coefplot (extremism_idx_3compare, nokey), bylabel(Fundamentalism (index)) keep(consider_migrat_nm never_lived_gulf) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (religion_idx_3compare, nokey), bylabel(Relig. behav. (index)) keep(consider_migrat_nm never_lived_gulf) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_ed_gender_3compare, nokey), bylabel(Education for men) keep(consider_migrat_nm never_lived_gulf) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_husbands_3compare, nokey), bylabel(Husbands final say) keep(consider_migrat_nm never_lived_gulf) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_takfir_3compare, nokey), bylabel(Takfir) keep(consider_migrat_nm never_lived_gulf) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_violence_3compare, nokey), bylabel(Violence permitted) keep(consider_migrat_nm never_lived_gulf) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_clerics_3compare, nokey), bylabel(Clerics inf. gov.) keep(consider_migrat_nm never_lived_gulf) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_interest_3compare, nokey), bylabel(Interest forbidden) keep(consider_migrat_nm never_lived_gulf) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) byopts(row(4)) xsize(5.5) 


**FIGURE D.2: Comparing attitudes of returned migrants from ALL COUNTRIES with prospective and non-migrants
eststo clear
foreach outcome in extremism_idx religion_idx ideo_ed_gender ideo_husbands ideo_takfir ideo_violence ideo_clerics ideo_interest {
	eststo: reg `outcome' consider_migrat_nm never_migrate age education_years hh_employed_ft married econ_sat male bystander i.district, cl(location)
	estimates store `outcome'_3compare
	}
coefplot (extremism_idx_3compare, nokey), bylabel(Fundamentalism (index)) keep(consider_migrat_nm never_migrate) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (religion_idx_3compare, nokey), bylabel(Relig. behav. (index)) keep(consider_migrat_nm never_migrate) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_ed_gender_3compare, nokey), bylabel(Education for men) keep(consider_migrat_nm never_migrate) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_husbands_3compare, nokey), bylabel(Husbands final say) keep(consider_migrat_nm never_migrate) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_takfir_3compare, nokey), bylabel(Takfir) keep(consider_migrat_nm never_migrate) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_violence_3compare, nokey), bylabel(Violence permitted) keep(consider_migrat_nm never_migrate) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_clerics_3compare, nokey), bylabel(Clerics inf. gov.) keep(consider_migrat_nm never_migrate) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_interest_3compare, nokey), bylabel(Interest forbidden) keep(consider_migrat_nm never_migrate) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) byopts(row(4)) xsize(5.5) 

**TABLE D.5: Comparing returned migrants from DEMOCRACIES with propsective and non-migrants
gen never_lived_dem = 0
replace never_lived_dem = 1 if lived_abroad_dem==0 & consider_migrat == 0
label variable never_lived_dem "Non-Migrant (Democracy)"
eststo clear
foreach outcome in extremism_idx religion_idx ideo_ed_gender ideo_husbands ideo_takfir ideo_violence ideo_clerics ideo_interest {
	eststo: reg `outcome' consider_migrat_nm never_lived_dem age education_years hh_employed_ft married econ_sat male bystander i.district, cl(location)
	estimates store `outcome'_3compare
	}


**TABLE E.1: Effects of housing type on social and religious attitudes (Gulf)
eststo clear
foreach outcome in extremism_idx religion_idx ideo_ed_gender ideo_husbands ideo_takfir ideo_violence ideo_clerics ideo_interest {
	eststo: reg `outcome' housing_gulf_empl housing_gulf_own age education_years hh_employed_ft married econ_sat male bystander i.district if lived_abroad_gulf==1, cl(location)
	estimates store `outcome'_3compare
	}
esttab using "IND22_3compare_gulf_h.tex", se star(* .10 ** .05 *** .01) r2 nodep mtitle("Fundament." "Relig. Behav." "Edu. Men" "Husbands" "Takfir" "Violence" "Clerics" "Interest") label keep(housing_gulf_empl housing_gulf_own age education_years hh_employed_ft married econ_sat male bystander) title(Effects of housing type on social and religious attitudes \label{tab:3comparegulfH}) note(OLS with village-clustered SE in parentheses. Includes village fixed effects.) replace	


**TABLE E.2: Effects of housing type on social and religious attitudes (all)	
eststo clear
foreach outcome in extremism_idx religion_idx ideo_ed_gender ideo_husbands ideo_takfir ideo_violence ideo_clerics ideo_interest {
	eststo: reg `outcome' housing_abroad_empl housing_abroad_own age education_years hh_employed_ft married econ_sat male bystander i.district if lived_abroad==1, cl(location)
	estimates store `outcome'_3compare
	}
esttab using "IND22_3compare_h.tex", se star(* .10 ** .05 *** .01) r2 nodep mtitle("Fundament." "Relig. Behav." "Edu. Men" "Husbands" "Takfir" "Violence" "Clerics" "Interest") label keep(housing_abroad_empl housing_abroad_own age education_years hh_employed_ft married econ_sat male bystander) title(Effects of migrant housing type on social and religious attitudes \label{tab:3compareH}) note(OLS with village-clustered SE in parentheses. Includes village fixed effects.) replace	
	

**TABLE F.1: Effects of length of time abroad on social and religious attitudes	
eststo clear
foreach outcome in extremism_idx religion_idx ideo_ed_gender ideo_husbands ideo_takfir ideo_violence ideo_clerics ideo_interest {
	eststo: reg `outcome' consider_migrat_nm lived_abroad_years age education_years hh_employed_ft married econ_sat male bystander i.district, cl(location)
	estimates store `outcome'_3compare
	}
esttab using "IND22_3compare_l.tex", se star(* .10 ** .05 *** .01) r2 nodep mtitle("Fundament." "Relig. Behav." "Edu. Men" "Husbands" "Takfir" "Violence" "Clerics" "Interest") label keep(consider_migrat_nm lived_abroad_years age education_years hh_employed_ft married econ_sat male bystander) title(Effects of length of time abroad on social and religious attitudes \label{tab:3compareL}) note(OLS with village-clustered SE in parentheses. Includes village fixed effects.) replace


**FIGURE G.1: Comparing attitudes of individuals with and without a household member who migrated
label variable hh_abroad "Household Migrated"
eststo clear
foreach outcome in extremism_idx religion_idx ideo_ed_gender ideo_husbands ideo_takfir ideo_violence ideo_clerics ideo_interest {
	eststo: reg `outcome' hh_abroad age education_years hh_employed_ft married econ_sat male bystander i.district if lived_abroad==0, cl(location)
	estimates store `outcome'_hh
	}
esttab using "IND22_hh.tex", se star(* .10 ** .05 *** .01) r2 nodep mtitle("Fundament." "Relig. Behav." "Edu. Men" "Husbands" "Takfir" "Violence" "Clerics" "Interest") label keep(hh_abroad age education_years hh_employed_ft married econ_sat male bystander) title(Comparing households with and without a migrant \label{tab:hh}) note(OLS with village-clustered SE in parentheses. Includes village fixed effects.) replace
coefplot (extremism_idx_hh, nokey), bylabel(Fundamentalism (index)) keep(hh_abroad) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (religion_idx_hh, nokey), bylabel(Relig. behav. (index)) keep(hh_abroad) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_ed_gender_hh, nokey), bylabel(Education for men) keep(hh_abroad) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_husbands_hh, nokey), bylabel(Husbands final say) keep(hh_abroad) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_takfir_hh, nokey), bylabel(Takfir) keep(hh_abroad) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_violence_hh, nokey), bylabel(Violence permitted) keep(hh_abroad) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_clerics_hh, nokey), bylabel(Clerics inf. gov.) keep(hh_abroad) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (ideo_interest_hh, nokey), bylabel(Interest forbidden) keep(hh_abroad) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) byopts(row(4)) xsize(5.5)	
	
eststo clear
foreach outcome in pol_parl_open pol_parl_islam pol_sharia pol_secular {
	eststo: reg `outcome' hh_abroad age education_years hh_employed_ft married econ_sat male bystander i.district if lived_abroad==0, cl(location)
	estimates store `outcome'_hh
	}
esttab using "IND22_hh_pol.tex", se star(* .10 ** .05 *** .01) r2 nodep mtitle("Open parl." "Islamist" "Sharia" "Secular") label keep(hh_abroad age education_years hh_employed_ft married econ_sat male bystander) title(Comparing households with and without a migrant \label{tab:hhpol}) note(OLS with village-clustered SE in parentheses. Includes village fixed effects.) replace
coefplot (pol_parl_open_hh, nokey), bylabel(Open parliamentary) keep(hh_abroad) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (pol_parl_islam_hh, nokey), bylabel(Islamist) keep(hh_abroad) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///
	|| (pol_sharia_hh, nokey), bylabel(Sharia) keep(hh_abroad) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) ///	
	|| (pol_secular_hh, nokey), bylabel(Secular) keep(hh_abroad) xline(0) legend(off) msymbol(s) ciopts(color(gs1)) color(gs1) byopts(row(2)) xsize(5.5)	

	
	